Kniga-Online.club
» » » » Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин

Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин

Читать бесплатно Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин. Жанр: Программирование год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:
создания связывания данных с помощью мастера JFace Automating Databinding в окне Package Explorer перспективы Java среды Eclipse щелкнем правой кнопкой мышки на узле проекта, созданного с помощью мастера SWT/JFace Java Project, и в контекстном меню выберем команду New | Other | Java | Class и нажмем кнопку Next, введем имя пакета и имя класса и нажмем кнопку Finish.

В окне редактора исходного кода дополним код класса.

Теперь класс Data является JavaBeans-компонентом, представляющим данные приложения.

В окне Package Explorer щелкнем правой кнопкой мышки на узле класса Data и в контекстном меню выберем команду New | Other | WindowBuilder | SWT Designer | Databinding | JFace Automating Databinding и нажмем кнопку Next, в окне мастера выберем переключатель Shell и нажмем кнопку Next.

В поле Properties: выберем свойство data класса Data и нажмем кнопку Finish.

В результате будет создано окно Shell, включающее в себя текстовое поле, содержимое которого синхронизировано со свойством data класса Data.

Связывание данных данного SWT-приложения устанавливается с помощью создания объекта DataBindingContext, который отвечает за хранение информации обо всех связываниях данных приложения.

Связывание данных вносится в DataBindingContext-объект с помощью методов класса DataBindingContext:

Метод bindList – синхронизирует два списка java.util.List.

Метод bindSet – синхронизирует два набора java.util.Set.

Метод bindValue – синхронизирует два объекта.

В данном SWT-приложении применяется метод bindValue для синхронизации свойства Text-компонента со свойством JavaBeans-компонента.

При этом свойство Text-компонента и свойство JavaBeans-компонента обертываются в объекты IObservableValue, обеспечивающие отслеживание изменений значений свойств.

Обертывание свойства Text-компонента в IObservableValue-объект производится с помощью статического метода observeText класса-фабрики SWTObservables, а обертывание свойства JavaBeans-компонента – с помощью статического метода observeValue класса-фабрики PojoObservables.

В методе main данного SWT-приложения Shell-окно создается в специальном UI-потоке, для которого определен контекст доступа к IObservable-объектам, обеспечивающий уведомление IObservable-объектами своих слушателей.

Такой контекст представлен объектом Realm.

Для демонстрации связывания данных во вкладке Design WindowBuilder-редактора перенесем в Shell-окно элемент Button раздела Controls Palette-палитры и два раза щелкнем по нему мышкой – в результате будет сгенерирован код создания Button-компонента и присоединения к нему слушателя событий выбора компонента.

Дополним код обработчика событий компонента.

В выделенных строках кода изменяется значение свойства data объекта Data и вызывается метод, обновляющий DataBindingContext-контекст.

После запуска приложения выбором команды Run As | Java Application контекстного меню окна Package Explorer при нажатии кнопки окна приложения в текстовом поле появится значение свойства JavaBeans-компонента «Hello».

Для того чтобы в обработчике событий кнопки не обновлять DataBindingContext-контекст вызовом метода setData, изменим код класса Data и код метода initDataBindings.

Здесь мы добавляем слушателей свойства JavaBeans-компонента, и в его методе setData автоматически генерируем событие изменения значения свойства.

Здесь мы обертываем свойство JavaBeans-компонента.

Для создания связывания данных с помощью вкладки Bindings WindowBuilder-редактора во вкладке Design WindowBuilder-редактора перенесем в Shell-окно элемент Label раздела Controls Palette-палитры и перейдем на вкладку Bindings.

Во вкладке Bindings в поле Target выберем Label-компонент, в поле Properties – его свойство text. В поле Model кнопкой Widgets переключимся на компоненты и выберем Text-компонент, а в нижнем поле Properties – его свойство text и нажмем кнопку создания связывания.

В окне мастера Create Data Binding нажмем кнопку OK.

В результате метод initDataBindings дополнится кодом.

Здесь текст поля связывается с текстом Label-компонента.

Убедимся, что вызов метода initDataBindings производится после создания Label-компонента, и во вкладке Design WindowBuilder-редактора в области визуального редактирования нажмем на Label-компоненте правой кнопкой мышки и в контекстном меню выберем команду Horizontal alignment | Fill, гарантируя отображение текста метки.

Теперь после запуска приложения изменение текста в текстовом поле приведет к автоматическому изменению текста метки.

JFace-приложения

Для создания JFace-приложения

в окне Package Explorer нажмем правой кнопкой мышки на узле проекта, созданного с использованием мастера SWT/JFace Java Project, и в контекстном меню выберем команду New | Other | WindowBuilder | SWT Designer | JFace | ApplicationWindow, нажмем кнопку Next, введем имя пакета и имя класса и нажмем кнопку Finish.

В результате будет создан главный класс JFace-приложения, представляющий окно с заголовком и кнопками «свернуть», «развернуть» и «закрыть», расширяющий класс ApplicationWindow и имеющий публичный конструктор, статический метод main, внутренний метод createActions и переопределенные методы createContents, createMenuManager, createToolBarManager, createStatusLineManager, configureShell и getInitialSize.

В конструкторе главного класса JFace-приложения вызывается конструктор класса ApplicationWindow с аргументом Shell null, где Shell – это родительское окно для данного окна, таким образом определяя создаваемое окно главным окном приложения.

Далее вызываются методы createActions, addToolBar, addMenuBar и addStatusLine.

Метод createActions предназначен для создания JFace-действий, а методы addToolBar, addMenuBar и addStatusLine являются методами класса ApplicationWindow и отвечают за определение конфигурации окна, имеющего панель инструментов, панель меню и строку статуса.

Метод createContents переопределяет соответствующий метод класса Window, являющегося суперклассом класса ApplicationWindow.

Данный метод отвечает за создание и возврат содержимого окна, и в переопределенном методе createContents создается и возвращается SWT контейнер Composite.

При добавлении компонентов в ApplicationWindow-окно приложения, используя область визуального редактирования вкладки Design WindowBuilder-редактора, код создания компонентов добавляется в метод createContents и компоненты становятся дочерними компонентами возвращаемого методом Composite-контейнера.

Метод createMenuManager переопределяет соответствующий метод класса ApplicationWindow.

Данный метод отвечает за создание и возврат объекта MenuManager – объекта-помощника, упрощающего создание и обновление меню.

Заполнить меню элементами можно используя раздел JFace Actions Palette-палитры вкладки Design WindowBuilder-редактора, который появляется в Palette-палитре при создании JFace-приложения.

Для добавления элемента меню перенесем элемент New раздела JFace Actions Palette-палитры в область (Empty MenuManager) холста дизайнера.

В результате в методе createActions появится код создания экземпляра анонимного класса, расширяющего класс Action, а в методе createMenuManager произойдет добавление созданного Action-объекта в панель меню методом add интерфейса IContributionManager, который реализуется классом MenuManager и который обеспечивает общий протокол для добавления, удаления и поиска элементов панели меню, панели инструментов и строки статуса.

После добавления, Action-объект отображается в виде кнопки панели меню.

Для того чтобы нажатие добавленной кнопки панели меню вызвало требуемое действие необходимо переопределить метод run класса Action, вызываемый средой выполнения при возникновении SWT-события.

Метод createToolBarManager переопределяет соответствующий метод класса ApplicationWindow.

Данный метод отвечает за создание и возврат объекта ToolBarManager – объекта-помощника, упрощающего создание и обновление панели инструментов.

Заполнить панель инструментов элементами можно, используя раздел JFace Actions Palette-палитры вкладки Design WindowBuilder-редактора.

Для добавления элемента панели инструментов перенесем элемент New раздела JFace Actions Palette-палитры в область (Empty ToolBarManager) холста

Перейти на страницу:

Тимур Сергеевич Машнин читать все книги автора по порядку

Тимур Сергеевич Машнин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Графические интерфейсы пользователя Java отзывы

Отзывы читателей о книге Графические интерфейсы пользователя Java, автор: Тимур Сергеевич Машнин. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*